package chapter17;

/**
 * @author yt1105
 * @version 1.0
 */
//通过继承thread这个类 创建 线程
public class ThreadUse {
    public static void main(String[] args) throws InterruptedException {
        //创建一个线程对象 可以当做线程使用
        Cat cat = new Cat();
        cat.start();//启动我们的线程
        //说明： 当我们主线程main启动一个子线程，主线程不会堵塞，会继续执行
        //我们可以在终端输入jconsole的话 这个可以看到我们的进程 在terminal里面输入jconsole
        // 主线程也是线程 只有我们启动了我们的程序的时候，不是主方法结束了 我们的进程未必真的结束 因为我们还是有子线程存在的
        //或者我们可以在子线程里面开线程 只有所以的线程都结束了 我们的进程才会真的结束
        System.out.println("主线程继续执行" + Thread.currentThread().getName());//main
        for (int i = 0; i < 60; i++) {
            System.out.println("主线程 i" + i);
            //让主线程休眠
            Thread.sleep(1000);
        }
    }
}
//1.当一个类继承了thread，这个类就可以当做线程处理
//2.我们会重写run方法，写上自己的业务代码
//3.run thread 类，实现了 runnable接口的run方法
class Cat extends Thread {
    @Override
    public void run() {
        int times = 0;
        while (true) {
            System.out.println("喵喵 加菲来吃千层饼啦" + (++times));
            //ctrl+alt+t 这个选择我们的快捷键
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            if (times == 80) {
                break;//我们就跳出我们的循环
            }
        }
    }
}